﻿// Piggy-Bank POJ - 1384.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://vjudge.net/problem/POJ-1384#author=GPT_zh

在ACM能够做任何事情之前，必须准备好预算并获得必要的财政支持。这项行动的主要收入来自于不可逆转的绑定货币（IBM）。其背后的想法很简单。每当某个ACM成员有一点零钱时，他就把所有的硬币扔进一个存钱罐里。你知道这个过程是不可逆转的，硬币不能被取出而不破坏存钱罐。经过足够长的时间，存钱罐里应该有足够的现金来支付所有需要支付的东西。

但是存钱罐有一个大问题。我们无法确定里面有多少钱。所以我们可能会把存钱罐打碎，只是为了发现里面的钱不够。显然，我们想避免这种不愉快的情况。唯一的可能性是称一下存钱罐的重量，然后试图猜测里面有多少硬币。假设我们能够准确地确定存钱罐的重量，并且我们知道给定货币的所有硬币的重量。那么存钱罐里有一定的最少金额是我们可以保证的。你的任务是找出这种最坏情况，并确定存钱罐里的最少现金金额。我们需要你的帮助。不要再提前打破存钱罐了！
输入
输入包括T个测试用例。它们的数量（T）在输入文件的第一行给出。每个测试用例以包含两个整数E和F的行开始。它们表示空存钱罐的重量和装满硬币的存钱罐的重量。这两个重量以克为单位给出。没有存钱罐的重量会超过10千克，也就是说1 <= E <= F <= 10000。在每个测试用例的第二行，有一个整数N（1 <= N <= 500），表示给定货币中使用的各种硬币的数量。接下来是确切的N行，每行指定一种硬币类型。这些行每个包含两个整数P和W（1 <= P <= 50000, 1 <= W <= 10000）。P是硬币的货币单位价值，W是它的重量（以克为单位）。
输出
对每个测试用例，输出一行输出。该行必须包含句子“存钱罐里的最少金额是X。”，其中X是使用给定总重量的硬币可以达到的最小金额。如果无法达到该重量，打印一行“This is impossible.”。

3
10 110
2
1 1
30 50
10 110
2
1 1
50 30
1 6
2
10 3
20 4

The minimum amount of money in the piggy-bank is 60.
The minimum amount of money in the piggy-bank is 100.
This is impossible.
*/
int main()
{
    std::cout << "Hello World!\n";
}